home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d20 / mamm_102.arc / MT_102.TXT < prev    next >
Text File  |  1991-09-28  |  35KB  |  1,131 lines

  1. Preamble
  2.  
  3. Copyright 1991 Greylock Software, Inc.
  4.  
  5.    Greylock Software, Inc.
  6.    POBox 730
  7.    Gt Barrington MA 01230
  8.    Data: 413-243-0034
  9.    EMail: 1:321/202@fidonet
  10.  
  11.  
  12. Intended Audience
  13.  
  14.  
  15. Synopsis
  16.  
  17.    This is a brief description of MilqueToast, with both its
  18.    similarities and differences from BinkleyTerm.
  19.    
  20.    This document is for the 0.86 version of MT.
  21.  
  22.  
  23. Contents
  24.  
  25. Milque.Res
  26.  
  27.  
  28. Milque.Lng
  29.  
  30.    Eventually, the language file will be totally eliminated from
  31.    MilqueToast, in favor of resource file based solutions.  However,
  32.    we wanted to extend some of the language file functionality for
  33.    Bink proper, so the conversion would be consistent between the
  34.    two versions.
  35.  
  36.  
  37. MT.Exe
  38.  
  39.  
  40. MT_086.Txt
  41.  
  42.    Yes, the last beta was 0.97.  What's it to you?
  43.  
  44.  
  45. 1  Features
  46.  
  47. 1.1  BinkleyTerm With A Windows-Like Interface
  48.  
  49. 1.1.1  Mouse Support
  50.  
  51.  
  52. 1.1.2  Where Simple, Extensions
  53.  
  54.  
  55. 1.2  Code More Or Less Concurrent With Bink 2.50
  56.  
  57.    At the present time, the code for Milque is virtually identical
  58.    to the 2.50 BinkleyTerm code.
  59.  
  60.  
  61. 2  Differences From "Standard" Bink
  62.  
  63. 2.1   ComboBox In Kill Traffic
  64.  
  65.    Yoy may note a combo in the Kill Traffic dialog.  Eventually,
  66.    there will be combo boxes in all the dialog boxes, derived from
  67.    FidoUser.Lst or the nodelist itself.
  68.  
  69.  
  70. 2.2   Environmental, Config Files Called Milque
  71.  
  72.    The environmental used to determine the config file path is
  73.    MILQUE.
  74.    
  75.    The Config file is Milque.Cfg.  The event file is Milque.Evt.
  76.    
  77.    The language file is now called Milque.Lng, rather than
  78.    MilqueL.Lng.  (Early development of Milque was medium model.  Now
  79.    that Bink is large model, this is no longer necessary.)
  80.    
  81.    The semaphore and related files are prefixed Milq.
  82.  
  83.  
  84. 2.3   Gateway Mode Triggered By Alt-Minus, Not Alt-Equal
  85.  
  86.    This will be rectified when after I've talked to Magma about the
  87.    problem.
  88.  
  89.  
  90. 2.4   Keyboard Remapping Does Not Function In Milque
  91.  
  92.    The keyboard remapping facility in the Bink language file is NOT
  93.    USED by Milq.  The irony of this is we put that facility INTO
  94.    Bink in the first place!  Filling out this table in the language
  95.    file will merely consume memory needlessly.
  96.    
  97.    The reason for this is the way MEWEL/Windows processes events,
  98.    menus, and accelerators.  In a MEWEL/Windows application, if you
  99.    have an active menu and you press Alt and the first letter of one
  100.    of those menu items, that menu will be pulled down.
  101.    
  102.    The "legal" way to subvert this is by the use of accelerators. 
  103.    Accelerators are generally stored in the resource file (which we
  104.    are doing.)  Unfortunately, we have yet to resolve the legal
  105.    issues involved in distributing the MEWEL side resource compiler,
  106.    and know little or nothing about the legal status of Windows
  107.    resource compilers.  (The MEWEL resource language format is close
  108.    to identical to the Windows format.)
  109.    
  110.    We are considering making use of the keyboard remapping in the
  111.    language file as an "on the fly" accelerator table.  Even in this
  112.    case, it should be noted that MEWEL/Windows keystroke values are
  113.    different than DOS keystroke values.
  114.  
  115.  
  116. 2.5   Overlaid With VROOMM
  117.  
  118.    Found the major oops that was causing us problems with the
  119.    overlaid version.
  120.    
  121.    The current version is overlaid using BorlandC VROOMM.  This
  122.    means if you are running the beast on a file server, you should
  123.    be careful not to run it more than once from the same image at
  124.    the same time.
  125.  
  126.  
  127. 2.6   Product Code Table Derived From Resource File, Not Language
  128.  
  129.  
  130. 2.7   Screen "Blanking" Quite A Bit Different
  131.  
  132.    Screen blanking involves "iconizing" the main window, and moving
  133.    it around the screen at randomly.
  134.    
  135.    In addition, we have divorced the screen blank time from the
  136.    modem init time in Milque.
  137.    
  138.    Finally, a new config verb, BlankWait [Seconds] has been added to
  139.    the config file.  If it is not specified, 60 is used.
  140.  
  141.  
  142. 2.8   Terminal Mode Is Marginally Operational
  143.  
  144.    Terminal Mode is marginally (barely) operational.
  145.    
  146.    ANSI is internal to Milque.  The implementation is not complete. 
  147.    However, it has been generalized to the point that eventually, it
  148.    can be used relatively easily in Bink proper.
  149.    
  150.    However, few of the function keys have been implemented, none
  151.    fully.  Alt-D, Alt-M and Alt-Y should work.
  152.  
  153.  
  154. 2.9   Version 7 NodeList Is The Default!
  155.  
  156.  
  157. 2.10  Windows Are Sizeable, Moveable, And Storable
  158.  
  159.    Windows are sizeable and moveable, and should still work as you
  160.    would expect.  If you resize the recent activity window by
  161.    shrinking the number of columns, and increase the number of lines
  162.    in the Pending window, all the lines in the pending window should
  163.    be used (if needed.)
  164.    
  165.    The "focus" of Mailer mode can be changed by clicking on the
  166.    window you wish to have focus, or by tabbing from Window to
  167.    Window.  You can change the position by grabbing the caption bar,
  168.    or from the move option of the system menu for that window.  The
  169.    system menu is accessed by clicking on the system menu box for
  170.    that window, or by pressing alt-space.  The size of the window
  171.    can be changed by grabbing the lower right hand corner of the
  172.    window, or via the size option of the system menu.
  173.    
  174.    The state of the windows is stored in a file called Milque.Scr. 
  175.    This is written to by the Save Layout command in the File menu. 
  176.    The original layout can be loaded from the Original Layout
  177.    command from the file menu.
  178.  
  179.  
  180. 3  Current Status
  181.  
  182. 3.1  Operating Full Time On JonesNose For 50+ Days
  183.  
  184.    We've been running MilqueToast for approximately 10 days on
  185.    JonesNose, full time.
  186.  
  187.  
  188. 3.2  Release Features
  189.  
  190. 3.2.1  1.10
  191.  
  192. 3.2.1.1  1.02 (910928)
  193.  
  194. 3.2.1.1.1  By Node Misc Information
  195.  
  196. 3.2.1.1.1.1  General Discussion
  197.  
  198.    There's some seriously experimental code in this version which
  199.    takes advantage of a "feature" of Version 7 nodelists to have
  200.    variable length records.
  201.    
  202.    With the help of Scott Samet, and a special version of Xlaxnode,
  203.    we have the ability to append application specific information to
  204.    nodelist records (in V7 mode.)  Initially, we are using this
  205.    feature to enable or disable certain enhancements on a node by
  206.    node basis.
  207.    
  208.    For instance, suppose, in general, you do not support paths in
  209.    general, using any of the "class" brushes, but you do wish to
  210.    support it for an individual node (say, perhaps, mine.)  You have
  211.    not SendPath or PathMap flavored statements in your Milque.Cfg.
  212.    
  213.    In your Xlaxnode.Ctl file, you add the following line:
  214.    
  215.      MISCDATA SendPaths=1,PathMap=Full.Map,Inbound=E:\Special
  216.    
  217.    The following tokens are supported:
  218.    
  219.      Token          Argument
  220.      ============== =========================
  221.      Inbound        Path
  222.      MaxBytes       Byte Count (Long)
  223.      MaxTime        Minutes (Integer)
  224.      OKFile         File Name
  225.      PathMap        File Name
  226.      ReqLim         File Count (Integer)
  227.      SendPaths      Boolean (Integer)
  228.    
  229.    Note we have chosen to implement this only in V7 nodelists.  It
  230.    is possible to add this to V6 nodelists, with a good sized BUT:
  231.    EACH RECORD MUST HAVE THE SAME AMOUNT OF MISC SPACE.  For those
  232.    already complaining about nodelist size, this is prohibitive. 
  233.    Rather than even try to fight that battle, and since we plan to
  234.    ELIMINATE V6 support from Milq in the near future, we are
  235.    expending no effort to extending this solution beyond V7
  236.    nodelists.
  237.  
  238.  
  239. 3.2.1.1.1.2  Other Approaches
  240.  
  241.    We are looking at some other approaches to this general set of
  242.    problems.  These may be taken in combination with or in
  243.    replacement of some of the existing solutions.
  244.    
  245.    One of the approaches we are considering is the use of one of the
  246.    flag bits, to indicate a "special friend".  This would be a
  247.    fourth level of security, above protected, and would mean that
  248.    all those sets of three verbs would become sets of four, not an
  249.    entirely attractive side effect.
  250.    
  251.    We also need to consider session by session access to some of
  252.    these facilities.
  253.  
  254.  
  255. 3.2.1.1.1.3  Caveats
  256.  
  257.    First and foremost, this is EXPERIMENTAL.  While we are committed
  258.    to the concept of "node specific" overrides, we are not locked
  259.    into this particular implementation.  Even if we stay with this
  260.    general implementation, there will probably be some fine tuning
  261.    that may cause problems between versions.
  262.    
  263.    This information can only be embedded by Xlaxnode.  It cannot be
  264.    EXPANDED on the fly (although it can be contracted or altered,
  265.    with care.)
  266.    
  267.    You must use the =1 form of the token rather than just the
  268.    presence of the token for this pass.  (This restriction will be
  269.    removed.)  You must use the "lowest common denominator" config
  270.    file tokens.  For example, regardless of whether you are unknown,
  271.    known, or protected, if you want to override the inbound, you use
  272.    the token "Inbound=[Path]".
  273.    
  274.    The list of tokens is neither complete nor guaranteed.  Items
  275.    that aren't on it may be added.  Items that are on it may be
  276.    dropped.
  277.  
  278.  
  279. 3.2.1.1.1.4  Scott Samet's Tech Notes
  280.  
  281.    Harry Lee and I have formulated what is hopefully an open-ended
  282.    extension to the V7 nodelist. Additional, variable length,
  283.    optional data is appended to the end of the V7 record.
  284.    
  285.    The size of this data is added to the "packed_len" byte, so that
  286.    the record length is still the sum of the fixed part plus the
  287.    phone, password and packed_len values.
  288.    
  289.    It was done this way to minimize the impact on existing
  290.    programs.  I have not done extensive testing, but NFind, as well
  291.    as all my own utilties seem to ignore the new data.
  292.    
  293.    The existing BName_len, CName_len, and SName_len fields are
  294.    unchanged, and the actual length of the packed data is also
  295.    unchanged.  It can be computed as:
  296.    
  297.      PLen = Truncate ((BName_Len + CName_Len + SName_Len + 2) div 3
  298.    * 2)
  299.    
  300.    (Packed_len - PLen) is the number of bytes of extended data
  301.    present.  If zero, there is none.  This data consists of one or
  302.    more elements of the following format:
  303.    
  304.        An id-type byte:
  305.           00-3F = one byte data element follows
  306.           40-7F = two bytes data element follow
  307.           80-BF = four bytes data element follows
  308.           C0-FF = variable length data, consisting of a length byte
  309.                   followed by the actual data.
  310.    
  311.    At the present time, C0 is the only id-byte used, and that's for
  312.    data used by Milquetoast.  I'll let Harry document the exact
  313.    purpose.
  314.    
  315.    To prevent duplication and confusion, I suggest that a single
  316.    person act as the registrar and assign id-byte values as
  317.    required.  I'll be happy to do this, but it might be better if it
  318.    was someone closer to the development cycle.
  319.  
  320.  
  321. 3.2.1.1.2  CGA Fix
  322.  
  323.    We have integrated new code from Magma Systems to resolve the CGA
  324.    problem.
  325.    
  326.    This current code forces the use of the BIOS.  New code which
  327.    writes directly and optionally checks the retrace bit is on the
  328.    way.
  329.  
  330.  
  331. 3.2.1.1.3  Path Support Improvements
  332.  
  333. 3.2.1.1.3.1  @Include.Ext - Nested Include
  334.  
  335.  
  336. 3.2.1.1.4  Windows
  337.  
  338.    Most of the work in this version is behind the scenes, to
  339.    accomodate the concurrent WinApp development.
  340.    
  341.    "This is worse than diverticulitus" he whined.
  342.    
  343.    Essentially, we are trying to cope with this problem through the
  344.    magic of macros on the first cut.  Once we have learned all the
  345.    points of conflict, we will make a second cut, orienting the
  346.    PRIMARY code to be Windows, and the secondary code to be MEWEL. 
  347.    Primary DEVELOPMENT will probably continue in MEWEL.
  348.    
  349.    Unfortunately, what this generally means is the following cycle:
  350.    
  351.      Compile until you hit some errors
  352.    
  353.      Make macros (in Milq.H) to correct for them
  354.    
  355.      Recompile Simple MT
  356.    
  357.      Recompile Simple BT
  358.    
  359.      Go To Top
  360.    
  361.    It's about a twenty-five minute cycle.  Even when you skip the
  362.    rebuilds (which I sometimes do), it is painful.
  363.  
  364.  
  365. 3.2.1.2  1.01 (910922)
  366.  
  367. 3.2.1.2.1  Bell Support Added To ANSI Module
  368.  
  369.  
  370. 3.2.1.2.2  Path Transmission/Reception
  371.  
  372.    Milq will send, receive, and use path information in ZedZap and
  373.    Janus sessions.
  374.    
  375.    This feature is a powerful one, with great potential for system
  376.    abuse.  We do not recommend you enable it until you think you
  377.    thoroughly understand it.
  378.    
  379.    I program for myself, figuring what I find useful, someone else
  380.    might as well.  We do all our backups using FidoNet technology. 
  381.    We LHA our work into a set of archives every day, and exchange
  382.    them between a few systems.  At 9600, this can take an hour, but
  383.    who cares?  It's a local call, and this way the backups are done,
  384.    period.
  385.    
  386.    Way back when, we used EMCL (TICK) technology to handle this, but
  387.    we ran into problems doing this.  We needed finer control of
  388.    where the mail agent put the files.  We needed access to ZSkip.
  389.    
  390.    Initially, we put some code in Bink that allowed for node
  391.    specific individual inbound directories, if they existed.  Still,
  392.    even this caused problems.  While it isolated my files from the
  393.    "general inbound", it made difficult the task of discriminating
  394.    between files sent for backup, and files sent for other reasons. 
  395.    We have abandoned these changes, although I believe there's still
  396.    something to be said for them, they may be restored in
  397.    conditionally compiled code.  We needed still finer control of
  398.    where the mail agent put the files.  We need to be able to
  399.    transfer and map path information, in effect, providing full
  400.    access to any path on the system.
  401.    
  402.    Three config file verbs are added: PathMap, KnownPathMap, and
  403.    ProtPathMap.  These each take a filename as an argument, pointing
  404.    to a file of lines of the following format:
  405.    
  406.      \SrcPath D:\DstPath
  407.    
  408.    Slashes are not "directional sensitive"!
  409.    
  410.    We plan on allowing the nesting of these files, using
  411.    @filename.ext.  We also plan to allow prefix only substitution
  412.    (for now, an exact match is required.)  And we plan to allow (in
  413.    a controlled manner) for some systems to be able to create paths
  414.    that do not exist in the substitution table.
  415.    
  416.    Currently, this only is used on the receive side.  We will
  417.    probably implement it on the send side as well, which would allow
  418.    you to "hide" your directory structure while still taking
  419.    advantage of the feature.
  420.    
  421.    Three other verbs control the SENDING of paths (SendPaths,
  422.    KnownSendPaths, and ProtSendPaths).
  423.    
  424.    There are restrictions on this feature.  It will only work when
  425.    you are communicating with a Bink, Igor, or Milque which also
  426.    supports this feature, something determined by examining the
  427.    product code information transmitted in the YooHoo handshake. 
  428.    Currently, only beta level software supports this.  (Milq 1.01+
  429.    and Bink 2.51/GS handle it.)
  430.    
  431.    Why these restrictions?  Well, first the easy one.  So far as we
  432.    can tell, only ZModem based protocols have provisions to transfer
  433.    path information.  This doesn't completely explain the product
  434.    restrictions, since many products support the appropriate
  435.    protocols.  When we first enabled this feature, we discovered
  436.    that at least one mailer does not properly implement ZModem, and
  437.    is quite unhappy if you send it a path.  Rather than code in the
  438.    "bad" mailers, we coded in the "good" ones.  In addition, even
  439.    the Janus code within earlier versions of Bink (Igor and Milq)
  440.    exhibits this weakness.
  441.    
  442.    WARNING!  As of this writing, ONLY the 2.51-YYMMDDHHMM version of
  443.    Bink (the one we produce) will properly handle this, and there
  444.    could be problems with Janus sessions if Bink proper does not
  445.    nuke paths on the receive side with betas at or above 2.51!
  446.    
  447.    At the current time, these restrictions are contained in a hard
  448.    coded table.  We will probably move this table to either the
  449.    resource or language file, to allow the enabling of this feature
  450.    with other products as possible without recompiling.
  451.    
  452.    In addition, we are still considering mechanisms to regulate this
  453.    feature on a node by node basis, in addition to the "node class"
  454.    basis initially implemented.  We are trying to accomplish this
  455.    with a minimum of node specific files.
  456.    
  457.    Let's briefly outline some of the inherent "gotcha's" in this
  458.    little ditty.  If you allow someone mapped access to your the
  459.    directory the running MT.Exe is in, very odd things could happen
  460.    if someone uploaded a new MT.Exe.  I don't even want to think
  461.    about this one.
  462.    
  463.    If you happen to map his "outbound" information to somewhere
  464.    other than your inbound, mail might not get unpacked properly.
  465.    
  466.    If you allow mapped access to configuration directories, backup
  467.    directories, or program directories, obvious security breaches
  468.    are possible.
  469.  
  470.  
  471. 3.2.1.2.3  Resource File Cleanup
  472.  
  473.  
  474. 3.2.1.2.4  XMRcv Status Display Cleanup
  475.  
  476.    XModem (FTS, etc.) type sessions were not being properly
  477.    displayed.  Hopefully fixed.
  478.  
  479.  
  480. 3.2.1.2.5  Yet Again Fixing The Damned Nodelist
  481.  
  482.    Someone merging the code decided they didn't like the way we had
  483.    done nodelist code, so they got clever.
  484.    
  485.    Not clever enough.
  486.    
  487.    Once again, we have put the code back to the way it was.
  488.    
  489.    Version6 now works again.
  490.    
  491.    I've set up my development machine with a V6 nodelist only.  Such
  492.    errors will be detected in the future.
  493.  
  494.  
  495. 3.2.1.2.6  YooHoo State Table Code Integrated
  496.  
  497.  
  498. 3.2.2  1.00
  499.  
  500. 3.2.2.1  Vrsn 0.99 (910914)
  501.  
  502. 3.2.2.1.1  Scheduler Improvements
  503.  
  504.    The Schedule list has been enhanced both with regard to the
  505.    amount of schedule information displayed, along with allowing you
  506.    to actually manipulate the information.
  507.    
  508.    The Write button takes the changes you have made and commits them
  509.    to memory, and, when you leave Milq, saving them in the .Scd
  510.    file.  It does NOT affect the .Evt (text format) file.  This is
  511.    accomplished by using the Export function.  In other words, the
  512.    changes you make will "stick" when you use the write button until
  513.    you update the .Evt file or erase the .Scd file.
  514.    
  515.    Currently, the Export button generates a file called Event.New. 
  516.    This is basically done out of cowardice on my part.  It appears
  517.    to be a functioning event file, but since I don't have a very
  518.    complex event file, I'm not sure this is true.
  519.  
  520.  
  521. 3.2.2.1.2  Graphics Support
  522.  
  523.    Graphics Mode has been enabled, although all the ramifications
  524.    have yet to be ironed out.
  525.    
  526.    To enable graphics mode at program start, in Milque.Ini, set
  527.    GraphicsMode=16 (or whatever mode is best for your system.)  It
  528.    is recommended you NOT use EGA=1 in this case.
  529.    
  530.    All this stuff will be cleaned up in the 1.10 release.
  531.  
  532.  
  533. 3.2.2.2  Vrsn 0.71
  534.  
  535. 3.2.2.2.1  Merge To 2.49n Level Source
  536.  
  537.  
  538. 3.2.2.2.2  Terminal Side Resource File Fixes
  539.  
  540.  
  541. 3.2.2.3  Vrsn 0.86 (910901)
  542.  
  543. 3.2.2.3.1  Code Merge
  544.  
  545.    Milque code is now virtually identical to Bink code, at least in
  546.    those modules that are common between the two.
  547.    
  548.    This was the result of a lot of effort on Vince's part.  Thanks,
  549.    Vince!
  550.  
  551.  
  552. 3.2.2.3.2  Nav Keys Hosed
  553.  
  554.    The Pending Window Navigation Keys are somewhat problematic.
  555.    
  556.    In order to provide access to their functionality while we work
  557.    these kinks out, we set up the following accelerators (case
  558.    independent):
  559.    
  560.      D - Down a Line
  561.      E - End
  562.      H - Home
  563.      N - Next Screenful
  564.      P - Previous Screenful
  565.      U - Up a Line
  566.  
  567.  
  568. 3.2.2.4  Vrsn 0.85 (910831)
  569.  
  570. 3.2.2.4.1  Attempted Cleanup of "modal" modeless window problems
  571.  
  572.    A number of bugs were found in the code that sets the "mode" of
  573.    the Status and Pending windows.  These have been eliminated, we
  574.    hope.
  575.  
  576.  
  577. 3.2.2.4.2  Event List Dialog Box Added
  578.  
  579.    An Event List dialog has been added.  It's a hint of things to
  580.    come more than anything at the current time.
  581.  
  582.  
  583. 3.2.2.4.3  Merging To k Level Source (2.49-7+)/Code Cleanup
  584.  
  585.    This was not fun.
  586.    
  587.    No, that's being nice.
  588.    
  589.    This was downright painful.  It was also profound in the number
  590.    of areas it touched.  Please test EVERYTHING.
  591.    
  592.    Much of the Windows specific code has been removed from Bink
  593.    proper, in favor of macro changes, explained in detail in the
  594.    0.84 notes.
  595.  
  596.  
  597. 3.2.2.4.4  NewNodeList BugFix
  598.  
  599.    NewNodeList was broken in 0.84.  It's fixed now.
  600.    
  601.    The default remains Version 7, but specifying NewNodeList will
  602.    work now.
  603.  
  604.  
  605. 3.2.2.4.5  Path Send Problems
  606.  
  607.    Milque is experimenting with handling paths during WaZOO based
  608.    sessions.  Essentially, we plan on a mechanism that will allow
  609.    systems to transfer files between ACTUAL PATHS, bypassing the
  610.    inbound directories, under controlled conditions.
  611.    
  612.    As a precursor to this, we set Milq to ALWAYS send the full
  613.    path.  This has caused problems at least with dBridge systems. 
  614.    The problem is one of compliance with the ZModem spec, which
  615.    specifies that paths are allowed.
  616.    
  617.    The short term solution to this will be to send path names ONLY
  618.    to other Milqs (and Binks).  This is not a great solution (one we
  619.    will NOT extend on a case by case basis).  However, we cannot see
  620.    the point in adding a bit to the WaZOO handshake for a capability
  621.    we should already be able to legally support with the information
  622.    already being transferred.  Nor will we make Milq aware on a
  623.    mailer by mailer basis who is and is not capable of handing
  624.    this.  Both these solutions are "proving the negative".
  625.    
  626.    Milq will ONLY send paths if SendPaths=1 exists in Milque.Ini. 
  627.    This verb may be moved to Milque.Cfg before the formal release.
  628.    
  629.    The real solution, in short, is compliance.
  630.  
  631.  
  632. 3.2.2.4.6  Pending Window Keys Different From Binkley
  633.  
  634.    Due to the limitations of accelerator keys (described elsewhere),
  635.    we have been forced to change the keys used to manipulate the
  636.    pending outbound window.  In Milque, the keystrokes must be Alt'd
  637.    - for instance, Down becomes Alt-Down.
  638.  
  639.  
  640. 3.2.2.5  Vrsn 0.84 (910828)
  641.  
  642. 3.2.2.5.1   Distributed Screen Layout Peek-A-Boo
  643.  
  644.    The resource file default layout is such that not all the
  645.    information that can be displayed in a given window is exposed. 
  646.    You should try stretching some of the windows to see what's
  647.    there.
  648.  
  649.  
  650. 3.2.2.5.2   FreeSpace Added to Settings
  651.  
  652.  
  653. 3.2.2.5.3   Macro Changes To Reduce Redundant Code
  654.  
  655. 3.2.2.5.3.1  General
  656.  
  657.    Here's what we're doing internally to clean up some of the
  658.    conditional code.  The main changes relate to sb_* flavored
  659.    macros.  MANY of them are simply macro'd to nothingness on the
  660.    Milq side.
  661.    
  662.    We treat sb_puts(w,s) as a macro on the Milq side, which is
  663.    resolves as follows:
  664.    
  665.      SendMessage( w, WM_SETTEXT, 0, (long)(char far *)s )
  666.    
  667.    In other words, on the Milq side, sb_puts is talking to a formal
  668.    Window handle.
  669.    
  670.    On the Bink side, sb_puts still talks to a Bink window pointer (a
  671.    REGIONP).
  672.    
  673.    We have far more Windows (essentially, every item displayed on
  674.    the screen has its unique Window.)
  675.    
  676.    Where old Bink code would look like:
  677.    
  678.      sb_puts( historywin, str );
  679.    
  680.    Now it looks like:
  681.    
  682.      sb_puts( history_hWnd, str );
  683.    
  684.    With macros on the Bink side resolving it to:
  685.    
  686.      sb_puts( historywin, str );
  687.    
  688.    and on the Milq side to:
  689.    
  690.      SendMessage( historywin->hWnd, WM_SETTEXT, 0, (long)str );
  691.    
  692.    However, in most cases, the destination of the sb_puts() will NOT
  693.    be a *_hWnd flavored macro.  Each display location has a specific
  694.    window handle on the Milq side:
  695.    
  696.      sb_puts( history_BBS, str );
  697.    
  698.    On the Milq side, this will resolve to:
  699.    
  700.      SendMessage( history_BBS, WM_SETTEXT, 0, (long)str );
  701.    
  702.    And on the Bink side:
  703.    
  704.      sb_puts( historywin, str );
  705.  
  706.  
  707. 3.2.2.5.3.2  Milque Side Detail
  708.  
  709. 3.2.2.5.3.2.1  *_hWnd
  710.  
  711. 3.2.2.5.3.2.1.1  call_hWnd
  712.  
  713.  
  714. 3.2.2.5.3.2.1.2  file_hWnd
  715.  
  716.  
  717. 3.2.2.5.3.2.1.3  history_hWnd
  718.  
  719.  
  720. 3.2.2.5.3.2.1.4  hold_hWnd
  721.  
  722.  
  723. 3.2.2.5.3.2.1.5  node_hWnd
  724.  
  725.  
  726. 3.2.2.5.3.2.1.6  settings_hWnd
  727.  
  728.  
  729. 3.2.2.5.3.2.2  sb_*
  730.  
  731. 3.2.2.5.3.2.2.1  sb_fill*
  732.  
  733.  
  734. 3.2.2.5.3.2.2.2  sb_move
  735.  
  736.    sb_move() is history on the Milq side.  It is meaningless.
  737.  
  738.  
  739. 3.2.2.5.3.2.2.3  sb_puts
  740.  
  741.    This has been macro'd as follows:
  742.    
  743.      #define sb_puts(w,s)
  744.               SendMessage(w,WM_SETTEXT,0,(long)(char *)s)
  745.    
  746.    This requires some macro changes on the Bink side.  Where
  747.    sb_puts() wants to talk to a REGIONP, we now want it to talk to
  748.    an hWnd.  Since we have more hWnds than Bink has REGIONP, this
  749.    seemed the only possible approach.  So we refer to callwin->hWnd
  750.    as call_hWnd, and carry this approach through the five remaining
  751.    windows: File,  History, Hold, Node, and Settings.
  752.    
  753.    The Bink code is being changed such that sb_moves() talk to
  754.    *_hWnd flavor'd names.
  755.  
  756.  
  757. 3.2.2.5.3.2.2.4  sb_w*
  758.  
  759.  
  760. 3.2.2.5.3.3  Bink Side Detail
  761.  
  762. 3.2.2.5.3.3.1  SendMessage
  763.  
  764.    SendMessage() is reduced to nothing on the Bink side.
  765.  
  766.  
  767. 3.2.2.5.3.3.2  call_*
  768.  
  769. 3.2.2.5.3.3.2.1  call_hWnd
  770.  
  771.  
  772. 3.2.2.5.3.3.3  hold_*
  773.  
  774. 3.2.2.5.3.3.3.1  hold_hWnd
  775.  
  776.  
  777. 3.2.2.5.3.3.4  node_*
  778.  
  779. 3.2.2.5.3.3.4.1  node_hWnd
  780.  
  781.  
  782. 3.2.2.5.4   Merging to j level source
  783.  
  784.    We believe we are concurrent with the j level Bink sources.  This
  785.    is roughly equivalent to Bink Beta 2.49-7.
  786.  
  787.  
  788. 3.2.2.5.5   Node Window Behaviour Changes
  789.  
  790.    The Node Window behaviour has been refined.  What is displayed
  791.    depends on what window has the focus, and what we are doing.  If
  792.    the Pending window has the focus, the detail information for the
  793.    top line of the window will be displayed.  If you are dialing or
  794.    in a session, the current node information is displayed. 
  795.    Otherwise, the last node called info is displayed.
  796.    
  797.    There are some flaws in the way this works at the current time.
  798.  
  799.  
  800. 3.2.2.5.6   On Disk Structures Have Changed!
  801.  
  802. 3.2.2.5.6.1  Milque.Scd
  803.  
  804.    Some elapsed time information, and a more rational way of storing
  805.    last and next address information have resulted in changes to the
  806.    Scd file.  Also, in an earlier release, a change was made to the
  807.    .Scd structure, but the internal version was not incremented. 
  808.    This caused problems for some testers.
  809.    
  810.    Not sure how this will be resolved with Bink.
  811.  
  812.  
  813. 3.2.2.5.6.2  Milque.Scr
  814.  
  815.    Changes were made to Milque.Scr to allow storage of more
  816.    information about the state of the screen (although those
  817.    features are not being utilized in this version.)
  818.  
  819.  
  820. 3.2.2.5.7   Resource File Humour
  821.  
  822.    The resource file has some elements of humour.  Hope y'all see it
  823.    the same way.
  824.  
  825.  
  826. 3.2.2.5.8   Spawn Configuration From MEWEL.Ini
  827.  
  828.    Spawn information is drawn from MEWEL.Ini, which is MEWEL's
  829.    equivalent of Win.Ini.
  830.    
  831.    To use EMS in swapping, you need to have a mewel.ini containing
  832.    the following:
  833.    
  834.      [MEWEL.SWAPEXEC]
  835.      UseEMS=1
  836.    
  837.    The file should be either in the run directory, or in the program
  838.    directory MT lives in.
  839.  
  840.  
  841. 3.2.2.5.9   UseWinColors added to Milque.Ini
  842.  
  843.    Added a switch to allow use of the Windows default color scheme.
  844.  
  845.  
  846. 3.2.2.5.10  Version7 Nodelist Is The Default
  847.  
  848.    This change was made in 0.83, actually.
  849.    
  850.    The default nodelist in Milq is V7.  V6 is currently supported,
  851.    but as soon as V7 support is more widely available, Milq will
  852.    support only that format.
  853.    
  854.    To use V6, you MUST specify the NEWNODELIST verb in Milque.Cfg.
  855.  
  856.  
  857. 3.2.2.5.11  Windows Menu Item Added
  858.  
  859.  
  860. 3.2.2.6  Vrsn 0.83
  861.  
  862. 3.2.2.6.1   Call Window Improved
  863.  
  864.    The call history window has been improved.  It should retain its
  865.    contents and scroll properly now.
  866.  
  867.  
  868. 3.2.2.6.2   Initial State Info To Milque.Ini
  869.  
  870.    The current graphics mode is stored in Milque.Ini.  This is a
  871.    Win.Ini flavored file.  A sample is included in the archive.
  872.  
  873.  
  874. 3.2.2.6.3   Language File Elements Moved To Resource File
  875.  
  876.    Milque eventually will completely abandandon the language file. 
  877.    The Resource File is the "Windowish" way of approaching this.
  878.    
  879.    At this time, all the data in the language file is contained in
  880.    the resource file as well.  We have drastically cut the product
  881.    code strings contained in the Milque langauge file, as MT is
  882.    using the resource file for this.
  883.    
  884.    Keyboard translation is currently an amalgam of Accelerators and
  885.    the translation feature added to the language file.  Eventually,
  886.    this will be exclusively a resource file operation.
  887.  
  888.  
  889. 3.2.2.6.4   Major Window Selection Bug Fixed From Terminal Mode
  890.  
  891.  
  892. 3.2.2.6.5   Menus Now Accessable Via Keyboard
  893.  
  894.    We are much closer to Windows-style keyboard handling than in
  895.    earlier versions.  While some work remains, the underlying code
  896.    now reflects the proper path.
  897.    
  898.    You should be able to access the menus via the keyboard, as well
  899.    as have the alt-key functionality you've gotten used to in Bink.
  900.  
  901.  
  902. 3.2.2.6.6   Node Detail Information
  903.  
  904. 3.2.2.6.6.1  PWD in Milque.Ini
  905.  
  906.  
  907. 3.2.2.6.7   Pending Window Operation Vastly Improved
  908.  
  909.    The Pending Window flashing has been eliminated.
  910.    
  911.    We've made some changes to the Pending display.  These are
  912.    tentative changes, subject to reversal.  In essence, the address
  913.    field is now right justified, and if you shrink the window
  914.    horizontally, the leading part of the address will be lost rather
  915.    than the information about it.
  916.  
  917.  
  918. 3.2.2.6.8   Resource File Open Continuously
  919.  
  920.    The resource file (Milque.Res) is now open all the time.  It can
  921.    be in the directory the main program is located in, or the run
  922.    directory.
  923.  
  924.  
  925. 3.2.2.6.9   sb_put* Functions Improved
  926.  
  927.  
  928. 3.2.2.6.10  Screen Size Specific Resource Files
  929.  
  930.    I don't like this solution, but it works.
  931.  
  932.  
  933. 3.2.2.6.11  Scrolling Problem in Active Window Fixed
  934.  
  935.  
  936. 3.2.2.6.12  Shift-Space Access To System Menu
  937.  
  938.  
  939. 3.2.2.6.13  Tab/Shift-Tab Mailer Mode Window Navigation
  940.  
  941.  
  942. 3.2.2.6.14  Terminal Mode Colors Somewhat Improved
  943.  
  944.  
  945. 3.2.2.6.15  VROOMM Buffer Size Reduced
  946.  
  947.  
  948. 3.2.2.6.16  VROOMM Now Uses EMM/Extended Memory
  949.  
  950.  
  951. 3.3  Known Limitations/Problems
  952.  
  953. 3.3.1  General (Possibly MEWEL Internal)
  954.  
  955. 3.3.1.1  ComboBoxes Not Coming Down Via Alt-Down
  956.  
  957.  
  958. 3.3.1.2  Compiled Using BorlandC
  959.  
  960.    Since it's not overlaid, this is currently not a problem. 
  961.    However, once we get back into VROOMM, there could be some
  962.    problems with fileservers.
  963.  
  964.  
  965. 3.3.1.3  Input Problems
  966.  
  967. 3.3.1.3.1  Desqview "mouse" keyboard not effective
  968.  
  969.  
  970. 3.3.1.3.2  Hosing of Fabian's Mouse
  971.  
  972.  
  973. 3.3.1.3.3  Keyboard buffer spooky (Focus Problem)
  974.  
  975.  
  976. 3.3.1.3.4  Keypad Enter Not Always Effective
  977.  
  978.  
  979. 3.3.1.3.5  Keypad Enter Not Always Kosher In Size, Move
  980.  
  981.  
  982. 3.3.1.4  Return From Spawn Hi Res Problems
  983.  
  984.  
  985. 3.3.1.5  Spawn Configuration From MEWEL.Ini
  986.  
  987.    Spawn information is drawn from MEWEL.Ini, which is MEWEL's
  988.    equivalent of Win.Ini.
  989.    
  990.    To use EMS in swapping, you need to have a mewel.ini containing
  991.    the following:
  992.    
  993.      [MEWEL.SWAPEXEC]
  994.      UseEMS=1
  995.    
  996.    The file should be either in the run directory, or in the program
  997.    directory MT lives in.
  998.  
  999.  
  1000. 3.3.1.6  SwapDir Config File Verb Not Respected
  1001.  
  1002.    The SwapDir config file verb is not respected by Milq.  Instead,
  1003.    it uses the TEMP environmental.
  1004.    
  1005.    This is an artifact of MEWEL/Windows.  We are not sure how we
  1006.    will resolve it, since doing so would involve mucking with MEWEL
  1007.    internals.
  1008.  
  1009.  
  1010. 3.3.2  Mailer Mode
  1011.  
  1012. 3.3.2.1  Baud Display In Node Detail Not Nearly Right
  1013.  
  1014.  
  1015. 3.3.2.2  Blank Screen
  1016.  
  1017.    Sometimes, upon return from "screenblank", the mailer screen is
  1018.    hosed.  The Activity window, and sometimes others are either not
  1019.    displayed, or are displayed in a fragmentary manner.  Milque will
  1020.    respond to keyboard (and mouse) commands in this state.
  1021.    
  1022.    This is a long lived bug.  We continue to improve it, but fail to
  1023.    kill it entirely.
  1024.  
  1025.  
  1026. 3.3.2.3  Node
  1027.  
  1028. 3.3.2.3.1  Unknown nodes incorrectly identified
  1029.  
  1030.  
  1031. 3.3.2.4  Path
  1032.  
  1033. 3.3.2.4.1  Restart Broken?
  1034.  
  1035.  
  1036. 3.3.2.5  Pending
  1037.  
  1038. 3.3.2.5.1  Hilight when calling
  1039.  
  1040.  
  1041. 3.3.2.5.2  Last Line Not Properly Erased
  1042.  
  1043.  
  1044. 3.3.2.5.3  PageDown/Up Not By Length of Screen, but 4
  1045.  
  1046.  
  1047. 3.3.2.6  Polling Transition From Nothing In Outbound
  1048.  
  1049.  
  1050. 3.3.2.7  Transfer Status Problems
  1051.  
  1052. 3.3.2.7.1  Janus Time/Position Updating
  1053.  
  1054.    While dramatically improved, there are still problems with Janus
  1055.    transfer updates.
  1056.    
  1057.    Further, the adaptations we've had to make to accomodate Janus
  1058.    affect the appearance of uni-directional transfer status.
  1059.  
  1060.  
  1061. 3.3.2.7.2  Terminal Mode
  1062.  
  1063.  
  1064. 3.3.2.7.3  ZModem Update
  1065.  
  1066.    There have been times when updating in ZModem has stopped
  1067.    appearing on the screen.  I have yet to identify the conditions
  1068.    under which this occurs.  It does NOT interfere with transfers.
  1069.    
  1070.    If someone can pin this down, it would be appreciated.
  1071.  
  1072.  
  1073. 3.3.3  Terminal Mode
  1074.  
  1075. 3.3.3.1  ANSI Problems
  1076.  
  1077.  
  1078. 3.3.3.2  Avatar Not Even Implemented
  1079.  
  1080.  
  1081. 3.3.3.3  External Protocols Not Yet Supported
  1082.  
  1083.  
  1084. 3.3.3.4  Gateway Mode Nowhere Near Real
  1085.  
  1086.    First off, we don't have access to Alt-= under Windows/MEWEL.
  1087.    
  1088.    We have yet to make the internal changes to the message
  1089.    processors to properly handle it.
  1090.  
  1091.  
  1092. 3.3.3.5  Keys Randomly Cease Functioning
  1093.  
  1094.  
  1095. 3.3.3.6  Minimize Should Be Disallowed
  1096.  
  1097.  
  1098. 3.3.3.7  Redial Nearly Working
  1099.  
  1100.    We have totally revamped the redial system.
  1101.    
  1102.    Of course, it doesn't work, but you'll get the idea.
  1103.  
  1104.  
  1105. 3.3.3.8  Transfer Status Problems
  1106.  
  1107. 3.3.3.8.1  Terminal Mode
  1108.  
  1109.  
  1110. 3.3.3.8.2  ZModem Update
  1111.  
  1112.    There have been times when updating in ZModem has stopped
  1113.    appearing on the screen.  I have yet to identify the conditions
  1114.    under which this occurs.  It does NOT interfere with transfers.
  1115.    
  1116.    If someone can pin this down, it would be appreciated.
  1117.  
  1118.  
  1119. 4  Testing Desired
  1120.  
  1121. 4.1  Full Time Node Testing
  1122.  
  1123.    Those of you brought in specifically to test Milque are requested
  1124.    to run the beast full time on your nodes.
  1125.    
  1126.    Beyond that, anyone is welcome to test in whatever capacity they
  1127.    wish.
  1128.  
  1129.  
  1130. 4.2  Response Via BinkBeta
  1131.